package com.dci.controller.node;


import com.dci.model.node.NodeInfo;
import com.dci.model.node.NodeMatterInfo;
import com.dci.result.JsonData;
import com.dci.result.PageResult;
import com.dci.service.node.NodeInfoService;
import com.dci.service.node.NodeMatterInfoService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * All rights Reserved, Designed By 姑苏区政府大数据中心
 *
 * @version V1.0
 * @Title: null.java
 * @Package com.dci.controller.node
 * @Description: 项目节点管理一
 * @author: 张星亮
 * @date: 2019/2/25
 * @Copyright: 2019 姑苏区政府大数据中心. All rights reserved.
 * 注意：本内容仅限于姑苏区政府大数据中心内部传阅，禁止外泄以及用于其他的商业目
 */
@Controller
@RequestMapping("/node")
public class NodeInfoController {

    @Resource
    private NodeInfoService nodeInfoService;

    @Resource
    private NodeMatterInfoService nodeMatterInfoService;


    /**
     * 保存项目节点信息
     *
     * @param record
     * @return JsonData 封装的返回参数  保存成功msg:906 保存失败msg:911
     */
    @RequestMapping("/save")
    @ResponseBody
    public JsonData saveNodeInfo(@RequestBody NodeInfo record) {
        try {
            return nodeInfoService.saveNodeInfo(record);
        } catch (Exception e) {
            e.printStackTrace();
            return JsonData.success(null, 911);
        }
    }


    /**
     * 分页查询
     *
     * @param record
     * @return PageResult 封装的返回参数  保存成功msg:906 保存失败msg:911
     */
    @RequestMapping("/getPageList")
    @ResponseBody
    public PageResult getPageList(@RequestBody NodeInfo record) {
        try {
            return nodeInfoService.selectPageList(record);
        } catch (Exception e) {
            e.printStackTrace();
            return PageResult.fail(911);
        }

    }

    /**
     * 删除节点信息
     *
     * @param list
     * @return JsonData 封装的返回参数  保存成功msg:906 保存失败msg:911
     */
    @RequestMapping("/delete")
    @ResponseBody
    public JsonData deleteNodeInfo(@RequestBody List<NodeInfo> list) {
        try {
            return nodeInfoService.deleteNodeInfo(list);
        } catch (Exception e) {
            e.printStackTrace();
            return JsonData.success(null, 911);
        }
    }


    /**
     * 更新节点信息
     *
     * @param record
     * @return JsonData 封装的返回参数  保存成功msg:906 保存失败msg:911
     */
    @RequestMapping("/update")
    @ResponseBody
    public JsonData updateNodeInfo(@RequestBody NodeInfo record) {
        try {
            return nodeInfoService.updateByPrimaryKeySelective(record);
        } catch (Exception e) {
            e.printStackTrace();
            return JsonData.success(null, 911);
        }
    }


    /**
     * 获取所有节点信息
     *
     * @return JsonData 封装的返回参数  保存成功msg:906 保存失败msg:911
     */
    @GetMapping("/getAll")
    @ResponseBody
    public JsonData selectAllNode() {
        try {
            return nodeInfoService.selectAll();
        } catch (Exception e) {
            e.printStackTrace();
            return JsonData.success(null, 911);
        }
    }

    /**
     * 根据nodeId 查询事项信息列表
     *
     * @param record
     * @return JsonData 封装的返回参数  保存成功msg:906 保存失败msg:911
     */
    @PostMapping("/getMatterList")
    @ResponseBody
    public JsonData getMatterList(@RequestBody NodeMatterInfo record) {
        try {
            return nodeMatterInfoService.selectByNodeId(record);
        } catch (Exception e) {
            e.printStackTrace();
            return JsonData.success(null, 911);
        }
    }


}
